Why does Acrobat Reader only display the first transaction in a PDF file which contains multiple transactions?

In PDF files, information is added at the beginning of the PDF file that tells Acrobat where every object (file offsets for page, text, bitmap, fonts, and so on) is located inside the PDF file. The only way to gather this information is to have the entire file stored in memory before writing it out.

In Documaker, because of the volume of transactions that may be processed in a batch, only a single transaction is loaded into memory at a time. The print driver is then called. That transaction is processed and then the next transaction is loaded into memory. The PDF Print Driver only has information about the current transaction in memory, not all of the transactions that comprise a batch.

If you do not split transactions into separate PDF files, you end up with multiple PDF files concatenated into a single file, but the beginning of the file only contains information (file offsets for page, text, bitmap, font, and so on) about the last transaction that was processed. Since the last transaction can look a lot like the first PDF file, Acrobat may be fooled into displaying the first transaction. It will not, however, display the other transactions included in the file.

For PDF output, the GenPrint program should not write all the transactions into one file. Each transaction should be created as a separate PDF file by using the MultiFilePrint callback function. See the Output Management Guide (Previously known as Printers Reference) for more information. You must configure your FSISYS.INI file as shown here:

< Print >
	CallBackFunc = MultiFilePrint
	MultiFileLog = {full path and file name of the log file{optional}}
< RunMode >
	DownloadFAP = Yes
	LoadFAPBitmap = Yes
	CheckNextRecip = No
< Printer >
	PrtType = PDF
< PrtType:PDF >
	Device = c:\test.pdf
	DownloadFonts = No, Disabled
	LanguageLevel = Level2
	Module = PDFW32
	PageNumbers = Yes
	PrintFunc = PDFPrint
	SendOverlays = No, Disabled
	SendColor = Yes, Enabled	
< Printer1 >
	Port = ..\DMS1\DATA\AAAA####.PDF

Where AAAA is the four-character print file description and #### is a four-character sequence number.

Note   The CheckNextRecip option enables recipient batch records for the same transaction that occur in sequence in a recipient batch file to be queued and printed in one call to the print driver. This enables the transaction to be loaded only once and then each recipient is processed in turn inside the print driver.

For instance, you would set this option to No when you want a separate file for each recipient when using the PDF, XML, HTML, and RTF print drivers. With the option set to Yes, all the recipients for the same transaction in the same batch are written to a single output file.

If you set this option to Yes, some environments may see a marginal performance benefit. If you prefer to have this option enabled and have all recipients printed together, be sure you add both the option and the Yes setting into your INI file.

< RunMode >
    CheckNextRecip = Yes


Otherwise, the system default (No) will govern the GenPrint program’s behavior.

With the release of version 11.2, the default for this option is No. In prior releases, the default was Yes.